module NewKeynesianPreferredHabitatModels


# main solution and estimation functions
export NKPHEstimationOptimizer, initialize_empirical_moments!,
    initialize_model!, initialize_targets!, setup_nlopt!, 
    draw_init_params, set_continuation_targets!, 
    estimate_model_continuation!, save_estimates, 
    load_nkph_model_estimates, _init_nkphopt, 
    _get_scalar_moments, _get_nonscalar_moments, _df2xls_sheet!, 
    calc_yield_response, calc_longrun_effect,
    calc_longrun_volatilty, calc_yield_response_irf, calc_irf

# additional globals
export MODEL_DIR, MOMENT_DIR, ESTIM_DIR, OUTPUT_DIR

# include source files for solving and estimating NKPH models

# generic solution algorithms for NKPH models
include("./linalg_util_funcs.jl");
include("./nkph_solution_helpers.jl");
include("./nkph_solver.jl");

# defining and solving specific NKPH models
include("./nkph_model_mappings.jl");

# computing model-implied moments
include("./nkph_moments.jl");

# computing model-implied moments
include("./nkph_moments.jl");

# estimating NKPH models
include("./nkph_estimation.jl");

# summarize NKPH models
include("./nkph_summary.jl");


end